from django.db import models

# Create your models here.


class StoreUser(models.Model):
    # django 中的orm 模型，会自动创建主id
    username = models.CharField(max_length=32, verbose_name="用户名")
    password = models.CharField(max_length=32, verbose_name="密码")
    nick_name = models.CharField(max_length=32, verbose_name="昵称", blank=True, null=True)
    age = models.IntegerField(verbose_name="年龄", default=18)
    gender = models.CharField(max_length=8, verbose_name="性别", default="男")
    phone = models.CharField(max_length=32, verbose_name="电话", blank=True, null=True)
    address = models.TextField(verbose_name="地址", blank=True, null=True)
    creat_time = models.DateField(verbose_name="注册时间", auto_now=True)


class Store(models.Model):
    # 店铺模型
    name = models.CharField(max_length=32,verbose_name="店铺名字")
    description = models.TextField(verbose_name="店铺描述")
    # OneToOneField 创建一对一的关系
    # to 指明关联那张表
    # on_delete 指的是如果删除关联的数据表（storeuser），store标应该怎么样
    #       CASCADE 级联删除，如果删除storeuser中的数据，store中的对应数据也删除
    #       DO_NOTHING 如果删除storeuser中的数据，store中对应的数据不作处理
    store_user = models.OneToOneField(to=StoreUser, on_delete=models.CASCADE, verbose_name="一对一")


# 下面创建一对多的类型关系： 商品 对 商品类型  一对多
class GoodsType(models.Model):
    # 商品类型
    t_name = models.CharField(max_length=32, verbose_name="商品类型名字")
    t_description = models.TextField(verbose_name="描述")
    t_store = models.ManyToManyField(to=Store, verbose_name="多对多")


class Goods(models.Model):
    g_name = models.CharField(max_length=32, verbose_name="商品名字")
    g_price = models.IntegerField(verbose_name="价格")
    goods_type = models.ForeignKey(to=GoodsType, on_delete=models.CASCADE, verbose_name="一对多")

